package br.upis.criacional.factory.method.Montadora.Fabrica;

import br.upis.criacional.factory.method.Montadora.Abstrato.Carro;
import br.upis.criacional.factory.method.Montadora.Abstrato.FabricaDeAcessorios;
import br.upis.criacional.factory.method.Montadora.Abstrato.Montadora;
import br.upis.criacional.factory.method.Montadora.Concreto.Gol;
import br.upis.criacional.factory.method.Montadora.Concreto.Golf;
import br.upis.criacional.factory.method.Montadora.Concreto.Passat;
import br.upis.criacional.factory.method.Montadora.Concreto.Tiguan;
import br.upis.criacional.factory.method.Montadora.Enum.Categoria;

public class MontadoraVW extends Montadora {
	
	@Override
	protected Carro produzirCarro(Categoria categoria, FabricaDeAcessorios fabrica) {
		Carro c = null;
		
		switch (categoria){
			case POPULAR:
				c = new Gol("Branco", fabrica);
				break;
			
			case MEDIO:
				c = new Golf("Prata", fabrica);
				break;
			
			case SEDAN:
				c = new Passat("Preto", fabrica);
				break;
		
			case SUV:
				c = new Tiguan("Vermelho", fabrica);
				break;
			}	
		return c;
	}

	@Override
	protected Carro produzirCarro(Categoria categoria,
			FabricaDeAcessorios farol, FabricaDeAcessorios pneu,
			FabricaDeAcessorios banco, FabricaDeAcessorios espelho) {
		Carro c = null;
		
		switch (categoria){
			case POPULAR:
				c = new Gol("Branco", farol, pneu, banco, espelho);
				break;
			
			case MEDIO:
				c = new Golf("Prata", farol, pneu, banco, espelho);
				break;
			
			case SEDAN:
				c = new Passat("Preto", farol, pneu, banco, espelho);
				break;
		
			case SUV:
				c = new Tiguan("Vermelho", farol, pneu, banco, espelho);
				break;
			}	
		return c;
	}
}
